package com.xbongbong.saas.model;


import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.pro.domain.entity.UpdateDataEntity;
import com.xbongbong.saas.domain.entity.ext.MarketActivityEntityExt;
import org.elasticsearch.action.support.WriteRequest;

import java.util.List;
import java.util.Map;

/**
 * @author chunyang.qin
 * @version v1.0
 * @date 2020/11/4 16:44
 * @since v1.0
 */
public interface MarketActivityModel extends IModel<MarketActivityEntityExt> {
    /**
     * 市场活动数据单条查询
     * @param key 主键ID
     * @param corpid 公司ID
     * @author chunyang.qin
     * @date 2020/11/4 20:27
     * @since v1.0
     * @return Integer
     */
    MarketActivityEntityExt getByKey(Long key, String corpid);

    /**
     * 市场活动数据单条查询
     * @param keys 主键ID集合
     * @param corpid 公司ID
     * @author chunyang.qin
     * @date 2020/11/4 20:27
     * @since v1.0
     * @return Integer
     */
    List<MarketActivityEntityExt> getByKeys(List<Long> keys, String corpid);

    /**
     * 市场活动查询多个
     * @param param 参数
     * @return List<MarketActivityEntityExt>
     * @author long.rao
     * @date 2019-02-01 15:22
     */
    @Override
    List<MarketActivityEntityExt> findEntitys(Map<String, Object> param);

    /**
     * 获取符合查询条件的记录总数
     * @param param 查询条件
     * @return java.lang.Integer 符合查询条件的记录总数
     * @author chunyang.qin
     * @date 2020/11/4 9:42
     * @since v1.0
     * @version v1.0
     */
    @Override
    Integer getEntitysCount(Map<String, Object> param);


    /**
     * 批量更新
     * @author chunyang.qin
     * @date 2020/11/4 11:34
     * @param updateDataList
     * @param corpid 公司id
     * @return java.lang.Integer
     * @throws XbbException 业务异常
     */
    Integer updateBatch(List<UpdateDataEntity> updateDataList, String corpid) throws XbbException;

    Integer updateBatch(List<UpdateDataEntity> updateDataList, String corpid, WriteRequest.RefreshPolicy refreshPolicy) throws XbbException;

    Integer restoreBatch(List<Long> dataIdList, String corpid, Integer del) throws XbbException;

//    /**
//     *
//     * @param marketActivityEntityExtList
//     * @return
//     * @throws XbbException
//     */
//    void insertBatch(List<PaasFormDataEntity> marketActivityEntityExtList, boolean isImport) throws XbbException;

    /**
     * 单个删除
     * @param id
     * @param corpid
     * @return
     * @throws XbbException
     */
    Integer deleteByKey(Long id,String corpid) throws XbbException;

    /**
     * 批量删除
     * @author chunyang.qin
     * @date 2020/11/6 16:52
     * @param idIn 市场活动id列表
     * @param corpid 公司id
     * @return java.lang.Integer
     * @throws XbbException 业务异常
     */
    Integer deleteBatch(List<Long> idIn, String corpid) throws XbbException;

    Integer updateTime(Long id,String corpid) throws XbbException ;

    /**
     *
     * date: 2022/3/28 9:05 上午
     * @author yingjf
     * @param :
     */
    List<String> listAllCorpid()throws XbbException;
}
